home *** CD-ROM | disk | FTP | other *** search
- Path: pacbell.com!well!usenet
- From: sparker@well.com
- Newsgroups: comp.lang.java,comp.lang.c++,comp.lang.smalltalk
- Subject: Re: Will Java kill C++? (definition of strong typing)
- Date: 16 Apr 1996 15:43:20 GMT
- Organization: The Whole Earth 'Lectronic Link, Sausalito, CA
- Message-ID: <4l0f6o$sec@nkosi.well.com>
- References: <31682FFE.2781E494@bbn.com> <DpJyGG.FKK@hkuxb.hku.hk> <denatale-1004960822260001@grail1506.nando.net> <dbell-1104960125190001@wholder2.cts.com> <goochb.327.000893D1@rwi.com> <dbell-1104961159050001@wholder2.cts.com> <316D8523.74D7@concentric.net> <dbell-1 <3171810F.2E2@funsys.se>
- Reply-To: sparker@well.com
- NNTP-Posting-Host: sr-tty27-ppp.well.com
- X-Newsreader: IBM NewsReader/2 v1.2
-
- In <3171810F.2E2@funsys.se>, rrg@funsys.se (Robin Rosenberg) writes:
- >Perhaps a side issue but my cents on the use and misuse of techical term.
- >
- [snips]
- >
- >We have been reading different books. My book (Eliis Horowitz: Fundamentals of
- >Programming Languages, Springer Verlag, 1984) says (quote, p.38.)
- >
- >"A language is said to be *strongly typed* if the type of all expressions
- > is known at compile-time".
- >
- >Hence Smalltalk and LISP are *not* strongly typed.
- >
- >Perhaps you would like to refer to your source?
- >
- Well, we could all get into a battle of the books here. If we step back
- and look at the language terms used, the word 'strong' is both vague
- and perjorative - hey, who wants to use some wimpy 'weakly'-typed
- language? The fact is that the strong/weak distinction (originally introduced
- to distinguish assembly languages from 'high-level' languages) was
- useful (see the date of your book) but has been obsoleted by developments
- in languages, concepts, operating systems and compiling techniques.
-
- Instead of using the vague 'strong'/'weak' distinction, we should
- use some more precise distinctions and then take the discussion up from
- there.
-
- The pertinent distinctions would seem to be:
-
- *How* typing takes place - the static/dynamic distinction.
- *When* typing takes place - the early/late distinction.
- *Breadth* of typing - how wide/narrow are the types handled
- by the language? For example C and COBOL have only a handful
- of types. Languages such as C++, ST, and Java, whose class
- mechanism allows user-definition of types can permit finer
- distinction of types. Eg in C a string can represent both an
- address or a set of modem initialization instructions, and this
- is the only way to implement them. In an OO language, different
- classes can represent the two. I would judge the latter set of
- languages to have a 'narrower' typing mechanism than the former.
- >
- >--
- >Robin Rosenberg
-
-
- Steve Parker
-
- ***************************************************************************
- "It would make him physically ill to think of programming in C++"
- - Donald Knuth on Edsgar Dijkstra
-
-